# Medicine Suggesting System (experimental)

**Description**

firstly we need to compile our code. We can do this with mix tool:

```elixir
iex -S mix
```

Then mix opens the elixir shell enviroment and we types below command to train our data:

```elixir
iex(1)> Train.data
{:ok, #PID<0.249.0>, nil}
```

if returns ok so our code run without problem. After the training system is ready to predict for symptoms or sentences by user/patient.

```elixir
iex(2)> Medicine.suggest "i have some headache"
[
  duraflu: 0.06321353739426908,
  aspirin: 0.028337102969844756,
  ibuprofen: 0.017438217212212156,
  zebutal: 0.0,
  tyneol: 0.0,
  pamelor: 0.0,
  goto_doctor: 0.0,
  dvita: 0.0,
  benadryl: 0.0
]

iex(3)> Medicine.suggest "i have some cold"    
[
  duraflu: 0.050348060849802735,
  aspirin: 0.022569820380946053,
  benadryl: 0.011318418748648877,
  tyneol: 0.010652629410493062,
  zebutal: 0.0,
  pamelor: 0.0,
  ibuprofen: 0.0,
  goto_doctor: 0.0,
  dvita: 0.0
]

iex(4)> Medicine.suggest "i have some headache and cold"
[
  duraflu: 0.0981038810508801,
  aspirin: 0.043977601850394524,
  ibuprofen: 0.017438217212212156,
  benadryl: 0.011318418748648877,
  tyneol: 0.010652629410493062,
  zebutal: 0.0,
  pamelor: 0.0,
  goto_doctor: 0.0,
  dvita: 0.0 
]

iex(5)> Medicine.suggest "i am still ill"               
[
  goto_doctor: 0.011387142117414378,
  zebutal: 0.0,
  tyneol: 0.0,
  pamelor: 0.0,
  ibuprofen: 0.0,
  dvita: 0.0,
  duraflu: 0.0,
  benadryl: 0.0,
  aspirin: 0.0
]
```

As it can see, system produces diffrent results for different and combined symptoms. Also it can be set model of Bayes at train.exs and medicine.exs at option variable:

```elixir
opts = [
	model:          :multinomial,
	storage:   :file_system,
	file_path: "lib/medicine_dataset.txt"
]
```

It can be use diffrent models in there, additionally can be use different dataset with other path variables. Finally it can play with more sentences

**Not ready for usage**

